import '../../../config/AssetsName.dart';

enum SpriteAnimationParamEntity {
  // 僵尸
  // 行走
  zombieWalk(
    spritePath: AssetsName.zombieWalkAnimation,
    frameNumber: 47,
  ),
  // 行走2
  zombieWalk2(
    spritePath: AssetsName.zombieWalk2Animation,
    frameNumber: 47,
  ),
  // 吃
  zombieEat(
    spritePath: AssetsName.zombieEatAnimation,
    frameNumber: 40,
  ),
  // 死亡
  zombieDeath(
    spritePath: AssetsName.zombieDeathAnimation,
    frameNumber: 39,
    scaleSize: 0.7,
    offsetX: -20,
    offsetY: 25,
  ),
  zombieDeath2(
    spritePath: AssetsName.zombieDeath2Animation,
    frameNumber: 33,
    scaleSize: 0.7,
    offsetX: -55,
    offsetY: 28,
  ),
  // 静止
  zombieIdle(
    spritePath: AssetsName.spriteZombieIdle2,
    frameNumber: 15,
    scaleSize: 1.2,
    stepTime: 0.07,
  ),
  zombieIdle2(
    spritePath: AssetsName.spriteZombieIdle2,
    frameNumber: 15,
    scaleSize: 1.2,
    stepTime: 0.09,
  ),
  zombieIdle3(
    spritePath: AssetsName.spriteZombieIdle,
    frameNumber: 29,
    scaleSize: 1.2,
    stepTime: 0.09,
  ),
  zombieIdle4(
    spritePath: AssetsName.spriteZombieIdle,
    frameNumber: 29,
    scaleSize: 1.2,
    stepTime: 0.08,
  ),

  /// 豌豆射手
  peashooterIdle(
    spritePath: AssetsName.peashooterIdleAnimation,
    frameNumber: 25,
    scaleSize: 1.2,
    offsetX: 5,
    offsetY: -5,
  ),
  // 豌豆射手 - 射击
  peashooterShoot(
    spritePath: AssetsName.peashooterShootAnimation,
    frameNumber: 25,
    scaleSize: 1.2,
    offsetX: 5,
    offsetY: -5,
    stepTime: 0.05,
  ),

  /// 仙人掌
  cactusIdle(
    spritePath: AssetsName.cactusIdleAnimation,
    frameNumber: 15,
    scaleSize: 1.5,
    offsetX: 2,
    offsetY: -25,
  ),
  // 仙人掌 - 射击
  cactusShoot(
    spritePath: AssetsName.cactusShootAnimation,
    frameNumber: 18,
    scaleSize: 1.5,
    offsetX: 2,
    offsetY: -25,
  ),
  // 包心菜投手
  cabbagepultIdle(
    spritePath: AssetsName.cabbagepultIdleAnimation,
    frameNumber: 31,
    scaleSize: 1.2,
    offsetX: -3,
    offsetY: 0,
  ),
  // 包心菜投手 - 投射
  cabbagepultShoot(
    spritePath: AssetsName.cabbagepultShootAnimation,
    frameNumber: 38,
    scaleSize: 1.2,
    offsetX: -3,
    offsetY: 0,
    stepTime: 0.05,
  ),
  // 阳光
  sunIdle(
    spritePath: AssetsName.sunAnimation,
    frameNumber: 29,
    scaleSize: 0.7,
  ),
  // 太阳花
  sunflowerIdle(
    spritePath: AssetsName.sunflowerAnimation,
    frameNumber: 25,
    scaleSize: 0.7,
  );

  const SpriteAnimationParamEntity({
    required this.spritePath,
    required this.frameNumber,
    this.stepTime = 0.07,
    this.scaleSize = 0.9,
    this.offsetX,
    this.offsetY,
  });

  final String spritePath; // 图片地址
  final int frameNumber; // 图片张数
  final double stepTime; // 每张图片显示时间
  final double scaleSize; // 缩放比
  final double? offsetX; // 图片偏移量X
  final double? offsetY; // 图片偏移量Y
}
